C.编程计算S= 2^1+2^2+2^3+***+2^30其中 算法由子函数实现.

来源:百度知道 编辑:UC知道 时间:2024/05/19 16:16:30
C编程计算S= 2^1+2^2+2^3+***+2^30其中 算法由子函数实现.

请注意,这是一个学且仅学了谭浩强C程序设计第三版的人提的问题,请用C语言编译.请各位回答时考虑程序的可读性.不要冒出C++的语句,更不要用BASIC编请编译通过先再贴出来.谢谢

#include"stdio.h"
double a(double p)
{
int i;
for(i=0;i<30;i++)p=2*p+2;
return(p);
}
main(){printf("%.0lf\n",a(2));}
运行结果是:4294967294
------------------------------------------------------------
更普遍的程序
#include"stdio.h"
double a(double p,int a,int b)
{
int i,j;
j=p;
for(i=a;i<b+1;i++)p=j*p+j;
return(p);
}
main()
{
printf("%.0lf\n",a(2,1,30));/*就算2^1+2^2+2^3+***+2^30*/
printf("%.0lf\n",a(3,3,40));/*就算3^3+3^2+3^4+***+3^40*/
}

int sub(int p)
{
int sum=0,i;
for(i=1;i<=p;i++)
sum+=2*i;
return sum;
}
main()
{
printf("%d\n",sub(30));
}